#include <benchmark/benchmark.h>

//TODO: 
// Insert 
// Replace 
// Range
// FindRange
// Filter
// Multi-Filter
//
//
//


static void BM_StringCreation(benchmark::State & state){
  auto times = state.range(0);
  for( auto _ : state){
    for(int i = 0 ; i < times; ++i){
      std::string empty_string;
      //state.PauseTiming();
      //state.ResumeTiming();
    }
  }
}


BENCHMARK(BM_StringCreation)->Arg(1000);

static void BM_StringCopy(benchmark::State& state) {
  std::string x = "hello";
  for (auto _ : state)
    std::string copy(x);
}

BENCHMARK(BM_StringCopy);



//BENCHMARK(BM_StringCreation)->Args({1000, 10000}); // Args(vector);
//
//start, limit, step(default:8)
//BENCHMARK(BM_StringCreation)->Range({10, 1000});
//BENCHMARK(BM_StringCreation)->Ranges({1, 10}, {100, 200}); // Args(vector);
//BENCHMARK(BM_StringCreation)->RangeMultiplier(10)->Ranges({1, 10}, {100, 200}); // Args(vector);
